package com.xtm.exercise.interceptor;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 拦截器配置文件
 * 创建一个java类继承WebMvcConfigurer并重写addInterceptor方法（该类用来添加配置拦截器在该类中添加配置拦截器，以及配置过滤）
 * 拦截器的执行顺序： 按照配置顺序执行的
 */

@Configuration  // 等价于一个spring的xml文件 比如applicationContext.xml
public class WebConfig implements WebMvcConfigurer {

//    @Bean
//    public LoginUserInterceptor loginUserInterceptor() {
//        return new LoginUserInterceptor();
//    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 拦截所有路径
        // 注册自定义两个拦截器
//        registry.addInterceptor(loginUserInterceptor()).addPathPatterns("/**");

        registry.addInterceptor(new OneInterceptor()).addPathPatterns("/**");
        registry.addInterceptor(new TwoInterceptor()).addPathPatterns("/**");

        // excludePathPatterns方法是排除访问路径,但是当你排除的url路径在项目中并不存在的时候,springboot会将路径编程/error,从而无法进行排除.
//        registry.addInterceptor(new OneInterceptor()).addPathPatterns("/**").excludePathPatterns("/login");

    }
}
